package com.sojson.project.entity.po;

import java.io.IOException;
import java.util.Date;
import java.util.List;

import com.sojson.base.impl.BaseDto;
import com.sojson.enums.EPostApplyHireStatus;
import com.sojson.enums.EPostApplyIsHire;
import com.sojson.enums.EPostApplyPostsStatus;
import com.sojson.enums.core.EGeneralYesNo;
import com.sojson.util.DateUtil;
import com.sojson.util.token.TokenUtil;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 岗位应聘表Bean
 * 
 * @author liu
 * @date 2021-05-10
 */
@ApiModel("岗位应聘表Bean")
public class PostApply extends BaseDto {

    /**
     * 此文件由工具自动生成，手动添加内容请放至末尾
     */

    private static final long serialVersionUID = 1620631722857L;

    @ApiModelProperty("岗位ID")
    private String postId;
    @ApiModelProperty("用户ID")
    private String userId;
    @ApiModelProperty("录用状态(1:待录用,2:已取消,3:未录用,4:待上岗,5:未上岗,6:待结薪,7:已完成)")
    private Integer hireStatus;
    @ApiModelProperty("上岗状态(1:待审核,2:已上岗,3:未上岗,4:已取消)")
    private Integer postsStatus;
    @ApiModelProperty("是否录用(1待录用.2:已录用,3:未录用)")
    private Integer isHire;
    @ApiModelProperty("中介是否修改过状态(1:是,2:否)")
    private Integer bossIsUpdateStatus;
    @ApiModelProperty("预计关闭时间")
    private Date closeTimeReady;
    @ApiModelProperty("创建时间")
    private Date createdAt;
    @ApiModelProperty("更新时间")
    private Date updatedAt;
    /** ID集合 */
    private List<Integer> ids;
    /** 用户ID集合 */
    private List<Integer> userIds;
    /** 岗位应聘表集合 */
    private List<PostApply> postApplys;

    /**
     * 以上由工具自动生成，以下为手动添加
     */

       /**
        * Empty constructor
        */
    public PostApply() {

    }

    /**
     * 此文件由工具自动生成，手动添加内容请放至末尾
     */

    /**
     * 获取 岗位ID
     */
    public String getPostId() {
        return postId;
    }

    /**
     * 设置 岗位ID
     */
    public void setPostId(String postId) {
        this.postId = postId;
    }

    /**
     * 获取 用户ID
     */
    public String getUserId() {
        return userId;
    }

    /**
     * 设置 用户ID
     */
    public void setUserId(String userId) {
        this.userId = userId;
    }

    /**
     * 获取 录用状态(1:待录用,2:已取消,3:未录用,4:待上岗,5:未上岗,6:待结薪,7:已完成)
     */
    public Integer getHireStatus() {
        return hireStatus;
    }

    /**
     * 设置 录用状态(1:待录用,2:已取消,3:未录用,4:待上岗,5:未上岗,6:待结薪,7:已完成)
     */
    public void setHireStatus(Integer hireStatus) {
        this.hireStatus = hireStatus;
    }

    /**
     * 获取 上岗状态(1:待审核,2:已上岗,3:未上岗,4:已取消)
     */
    public Integer getPostsStatus() {
        return postsStatus;
    }

    /**
     * 设置 上岗状态(1:待审核,2:已上岗,3:未上岗,4:已取消)
     */
    public void setPostsStatus(Integer postsStatus) {
        this.postsStatus = postsStatus;
    }

    /**
     * 获取是否录用(1待录用.2:已录用,3:未录用)
     * 
     * @return
     */
    public Integer getIsHire() {
        return isHire;
    }

    /**
     * 设置是否录用(1待录用.2:已录用,3:未录用)
     * 
     * @param isHire
     */
    public void setIsHire(Integer isHire) {
        this.isHire = isHire;
    }

    /**
     * 获取中介是否修改过状态(1:是,2:否)
     * 
     * @return
     */
    public Integer getBossIsUpdateStatus() {
        return bossIsUpdateStatus;
    }

    /**
     * 设置中介是否修改过状态(1:是,2:否)
     * 
     * @param bossIsUpdateStatus
     */
    public void setBossIsUpdateStatus(Integer bossIsUpdateStatus) {
        this.bossIsUpdateStatus = bossIsUpdateStatus;
    }

    /**
     * 获取预计关闭时间
     * 
     * @return
     */
    public Date getCloseTimeReady() {
        return closeTimeReady;
    }

    /**
     * 设置预计关闭时间
     * 
     * @param closeTimeReady
     */
    public void setCloseTimeReady(Date closeTimeReady) {
        this.closeTimeReady = closeTimeReady;
    }

    /**
     * 获取 创建时间
     */
    public Date getCreatedAt() {
        return createdAt;
    }

    /**
     * 设置 创建时间
     */
    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    /**
     * 获取 更新时间
     */
    public Date getUpdatedAt() {
        return updatedAt;
    }

    /**
     * 设置 更新时间
     */
    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    /**
     * 获取 ID集合
     */
    public List<Integer> getIds() {
        return ids;
    }

    /**
     * 设置 ID集合
     */
    public void setIds(List<Integer> ids) {
        this.ids = ids;
    }

    /**
     * 获取 用户ID集合
     */
    public List<Integer> getUserIds() {
        return userIds;
    }

    /**
     * 设置 用户ID集合
     */
    public void setUserIds(List<Integer> userIds) {
        this.userIds = userIds;
    }

    /**
     * 获取 岗位应聘表集合
     */
    public List<PostApply> getPostApplys() {
        return postApplys;
    }

    /**
     * 设置 岗位应聘表集合
     */
    public void setPostApplys(List<PostApply> postApplys) {
        this.postApplys = postApplys;
    }

    /**
     * 以上由工具自动生成，以下为手动添加
     */

    /**
     * 插入初始化
     * @throws IOException 
     */
    public void insertInit() throws IOException {
        setUserId(TokenUtil.getUserId());
        setHireStatus(EPostApplyHireStatus.HIRE_ING.getCode());
        setPostsStatus(EPostApplyPostsStatus.AUDIT.getCode());
        setIsHire(EPostApplyIsHire.HIRE_ING.getCode());
        setBossIsUpdateStatus(EGeneralYesNo.NO.getCode());
        Date now = DateUtil.nowDate();
        setCreatedAt(now);
        setUpdatedAt(now);
    }

    /**
     * 更新初始化
     */
    public void updateInit() {
        Date now = DateUtil.nowDate();
        setUpdatedAt(now);
    }

}